package sort;

/**
 * @author wcj
 * @Date 2021/7/7 1:14
 * @Version 1.0
 */
public class BubbleSort {

    /**
     * 思想：两两比较
     *
     * @param arr
     * @return
     */
    public static int[] bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = arr.length - 1; j > 0; j--) {
                if (arr[j] < arr[j - 1]) {
                    int tmp = arr[j];
                    arr[j] = arr[j - 1];
                    arr[j - 1] = tmp;
                }
            }
        }
        return arr;
    }

    /**
     * 优化的冒泡排序
     *
     * @param arr
     * @return
     */
    public static int[] bubbleSort2(int[] arr) {
        boolean flag = true;
        for (int i = 0; i < arr.length && flag; i++) {
            for (int j = arr.length - 1; j > 0; j--) {
                if (arr[j] < arr[j - 1]) {
                    int tmp = arr[j];
                    arr[j] = arr[j - 1];
                    arr[j - 1] = tmp;
                    flag = true;
                }
            }
        }
        return arr;
    }
}
